"""
需求：使用类属性、类方法的知识实现以下功能：
1. 创建一个学生类Student
2. 实例属性有姓名name，分数score
3. 每创建一个对象自动实现学生个数累加
   类属性为：num
4. 实现__str__方法，打印对象时，输出：学生姓名:xxx, 考试分数:yyy
5. 设计一个类方法show_num，输出：班级总人数为： xxx
6. 创建对象，调用方法，验证结果
7. 示例运行结果：
    班级总人数为： 0
    学生姓名:张三, 考试分数:59
    学生姓名:李四, 考试分数:88
    学生姓名:王五, 考试分数:98
    班级总人数为： 3
"""

# 类名：Student
# 实例属性：name,score
# 实例方法：无
# 类属性：num
# 类方法：show_num()

# 定义类
class Student(object):
    """学生类"""
    # 类属性
    num = 0  # 学生数量默认为0
    def __init__(self,name,score):
        """初始化方法：实例设置属性"""
        self.name = name  # 姓名
        self.score = score  # 分数
        # 创建学生对象时，数量自动增加1
        Student.num += 1
    @classmethod
    def show_num(cls):
        """类方法：输出数量"""
        print(f"班级总人数为：{cls.num}")  # cls.类属性
    def __str__(self):
        """打印对象自定义信息"""
        # 获取实例的属性
        return f"学生姓名：{self.name}，考试分数：{self.score}"
# 先调用类方法：查看初始值
Student.show_num()
# 创建对象
s1 = Student("张三", 59)
s2 = Student("李四", 88)
s3 = Student("王五", 98)
# # 打印对象
print(s1)
print(s2)
print(s3)
# # 调用类方法：最后的值
Student.show_num()
